package face

// ***************公共*******************

type CodeMsg struct {
	ErrorCode int    `json:"error_code"`
	ErrorMsg  string `json:"error_msg"`
	LogId     int64  `json:"log_id"`
	Timestamp int    `json:"timestamp"`
	Cached    int    `json:"cached"`
}

// **********************************
type ReqFaceAdd struct {
	AppId     string `json:"appid"`
	UserId    string `json:"user_id"`
	GroupId   string `json:"group_id"`
	Image     string `json:"image"`
	ImageType string `json:"image_type"` //图片类型 BASE64:图片的 base64 值; 	FACE_TOKEN: 人脸标识

	UserInfo        string `json:"user_info,omitempty"`       //用户信息
	QualityControl  string `json:"quality_control,omitempty"` //质量控制 NONE: 不进行控制 LOW:较低的质	量要求 NORMAL: 一般的质量要求 HIGH: 	较高的质量要求 默认 NONE
	LivenessControl string `json:"liveness_control,omitempty"`
	ActionType      string `json:"action_type,omitempty"` //操作方式APPEND: 当 user_id 在库中已经存在时，对此user_id 重复注册时，新注册的图片默认会追加到该 user_id 下REPLACE : 当对此 user_id 重复注册时,则会用新图替换库中该 user_id 下所有图片默认使用 APPEND
	Option          string `json:"option,omitempty"`      //场景信息，程序会视不同的场景选用相对应的模型。当前支持的场景有 COMMON(通用场景)，GATE(闸机场景)，默认使用 COMMON
}

type RespFaceAdd struct {
	CodeMsg
	Result struct {
		FaceToken string `json:"face_token"`
		Location  struct {
			Left     float64 `json:"left"`
			Top      float64 `json:"top"`
			Width    int     `json:"width"`
			Height   int     `json:"height"`
			Rotation int     `json:"rotation"`
		} `json:"location"`
	} `json:"result"`
}

type ReqFaceUpdate struct {
	Image           string `json:"image"`
	ImageType       string `json:"image_type"`
	GroupId         string `json:"group_id"`
	UserId          string `json:"user_id"`
	UserInfo        string `json:"user_info"`
	QualityControl  string `json:"quality_control"`
	LivenessControl string `json:"liveness_control"`
	ActionType      string `json:"action_type"` //操作方式APPEND: 当 user_id 在库中已经存在时，对此user_id 重复注册时，新注册的图片默认会追加到该 user_id 下REPLACE : 当对此 user_id 重复注册时,则会用新图替换库中该 user_id 下所有图片默认使用 APPEND
	Option          string `json:"option"`      //场景信息，程序会视不同的场景选用相对应的模型。当前支持的场景有 COMMON(通用场景)，GATE(闸机场景)，默认使用 COMMON
}
type RespFaceUpdate struct {
	CodeMsg
	Result struct {
		FaceToken string `json:"face_token"`
		Location  struct {
			Left     float64 `json:"left"`
			Top      float64 `json:"top"`
			Width    int     `json:"width"`
			Height   int     `json:"height"`
			Rotation int     `json:"rotation"`
		} `json:"location"`
	} `json:"result"`
}

type ReqFaceList struct {
	GroupId string `json:"group_id"`
	UserId  string `json:"user_id"`
}
type RespFaceList struct {
	CodeMsg
	Result struct {
		FaceList []struct {
			FaceToken string `json:"face_token"`
			Ctime     string `json:"ctime"`
		} `json:"face_list"`
	} `json:"result"`
}

type ReqFaceDelete struct {
	GroupId   string `json:"group_id"`
	UserId    string `json:"user_id"`
	FaceToken string `json:"face_token"`
}
type RespFaceDelete struct {
	CodeMsg
	Result any `json:"result"`
}

//用户信息
type UserInfo struct {
	UserId    string
	UserName  string
	ImageName string
	OrgName   string
}
